package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * JDBC java DataBase Connectivity
 * java的数据库链接，是由java官方提供的一套用于链接数据库的标准驱动接口
 * 不同的数据库厂商都提供了一套对应的实现类，我们称这套实现类为“驱动”
 *
 *
 * 整体步骤
 * 1：在项目根目录下的pom.xml文件只能怪加上MySQL驱动的依赖
 */
public class JDBCDemo1 {
    public static void main(String[] args) throws Exception {
        /*
        使用JDBC链接数据库并操作的基本流程
        1：加载驱动
        2：使用DriverManager利用驱动与数据库建立链接，得到Connection对象
        3：通过连接对象创建用于执行SQL语句的语句对象：Statement
        4：通过Statement执行SQL，如果执行的是DQL语句，则会得到查询结果集ResultSet
        5：遍历结果集得到查询内容
        6：与数据库断开链接
         */
        //1
        //不同数据库厂商实现的Driver接口的实现类包名和实现类名不完全一样
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2,数据库地址格式：jbdc:mysql://数据库IP：端口/数据库名？一堆参数
        Connection connection=
        DriverManager.getConnection("jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true","root","root");
        System.out.println("成功连接数据库！");
        //3
        Statement steatement=connection.createStatement();
        /*
        创建一张表
        CREATE TABLE userinfo(
        id INT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(30),
        password VARCHAR(30),
        nickname VARCHAR(30),
        age INT(3)
        )
         */
        String sql ="CREATE TABLE userinfo(\n" +
                "        id INT PRIMARY KEY AUTO_INCREMENT,\n" +
                "        username VARCHAR(30),\n" +
                "        password VARCHAR(30),\n" +
                "        nickname VARCHAR(30),\n" +
                "        age INT(3)\n" +
                "        )";
        //execute方法执行SQL语句
        //boolean execute(String sql)
        //返回值用于表达执行该SQL后是否存在查询结果集
        //由于执行DML语句INSERT,UPDATE,DELETE
        steatement.execute(sql);
        System.out.println("执行完毕！");
        //最终操作完毕与数据库断开链接
        connection.close();
    }
}
